home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
pascal
/
boi.exe
/
BOI120.DOC
< prev
next >
Wrap
Text File
|
1990-12-12
|
22KB
|
527 lines
BOI Reference Manual 1.20 12/15/90
BBS Onliner Interface 1.20
(C) 1990 Andrew J. Mead
All Rights Reserved.
Contact:
POB 1155
Chapel Hill, NC 27514-1155
or
1:151/223.36 FidoNet
#98@9968 WWIVnet
Turbo Pascal and TP are registered trademarks of Borland International.
Quick Basic and QB are registered trademarks MicroSoft Incorporated.
Sections in order of Appearance
Initial Statement
ShareWare Liscense Agreement
Registration Cost
Technical Support
Registration Agreement
UNIT BIODECL
UNIT GETCMBBS
UNIT IOLIB
UNIT ASYNC
UNIT IOSUPP
UNIT SUPPORT
BOI Documentation Files
Future Enhancements
Implementation Discussion
Initial Statement
I would like to see the command line switches used by this interface
become a standard for BBS online doors. Since the BBS programmers
are not creating a standard drop file very quickly, we door programmers
will need to make do. If you are not a Turbo Pascal programmer, I
still ask that you consider implementing my command line switching
system.
The UNIT sections of this document detail the functionality of each
procedure and function contained in each unit. Unit BIODECL is
pretty much self explanatory, and looking at it directly is the
best way to get information on it.
ShareWare Liscence Agreement
This package is ShareWare. If you use this package, please send me
money. Feel free to use the ideas and code from this package, but
if you use the interface itself to any extent, place the following
on the opening or copyright screen.
BBS Onliner Interface version 1.20
(C) 1990 Andrew J. Mead
All Rights Reserved.
Contact: POB 1155 Chapel Hill, NC 27514-1155
If you alter the code, put your revision number AFTER the '1.20'
ie (version 1.20 revision 1.0). I will maintain, and steadily
update the interface. If you have any ideas, suggestions, or
improvements, please send them to me. There is plenty of room for
improvement in the interface.
Registration Costs
If you use the interface, I ask that you pay a royalty of $1U.S.
per registration. If the door you release has a registration fee
of less than $10, I waive this request. The money recieved from
the BOI will be set aside to pay for distribution of later versions
and my phone bill. If you register, I will make every effort to
make sure that you recieve every upgrade. The registration fee
for the BOI is $35.00 U.S. (and is credited against any future
royalties). There will be a Turbo C version of the interface
available in 1991. See BOIREG.DOC for registration form.
Technical Support
I am always willing to offer support. I can be reached at #98@9968
on the WWIVnet and 1:151/223.36 on the FidoNet. A support conference
on both systems may become available if demanded. Please be specific
with your questions, and include any details you have. If someone
out there would like to help with the technical support, let me know.
UNIT BIODECL
See BIODECL.PAS for documentation. This Unit is merely a
clearing house for public variables and constants. This is used
by every other unit and the door program itself.
UNIT GETCMBBS
Uses
Dos
BOIDecl
Procedure
GetCommand
Procedure GETCOMMAND(infofile, inhof, logfile : pathstr;
gamename, version : string; programset : charset);
infofile - name of the doors documentation file.
inhof - default name for text hall of fame (can be '').
logfile - name of error log.
gamename - name of the door.
version - door version number (string).
programset - set of door defined command line arguments. Must
be in ['+','-','=','[',']','.']. These arguments are to
be processed by the door itself.
GetCommand is the front-end of the interface. it reads the
BBS dropfile, and initializes the communications settings.
UNIT IOLIB
Uses
Dos
Functions
Exist GetTimer IntStr
KeyPressed LeftTime Max
Min PadStr PortKeyPressed
ReadKey ReadPortKey RealStr
Valid WhereX WhereY
Procedures
ClearBuffers ClrPortEol ClrPortScr
Delay DoTimeOut EndPort
GetString GotoPortXY PortBackground
PortColor PortColumnOne PortWindow
ResetPortXY SendString SetPort
SetPortXY TextPortColor TimerSet
Procedure CLEARBUFFERS
ClearBuffers empties both the host keyboard and the port input
buffers. This procedure is helpful in controlling 'Type-ahead'
problems. With a 1k port input buffer, the remote user could
inadvertently lean a key putting hundreds of key-strokes into the
buffer.
Procedure CLRPORTSCR ANSI
ClearPortScr sends the ANSI code to clear the defined screen
window (PortWindow). If there is a remote user, the current
status line will be written on line 25 on the host screen.
This replaces TPs CRT ClrScr.
Procedure CLRPORTEOL ANSI
ClearPortEol sends the ANSI code to clear the current line from
the current cursor position to the right edge of the screen.
Procedure DELAY(ms : Word) BIOS
This procedure is identical to the one in TPs CRT Unit. ms
is the approxiamate time of CPU delay in milliseconds (993 per
second).
Procedure DOTIMEOUT(ringbell : boolean)
This procedure is called upon modem or user inactivity time-out.
There should be no reason for the door itself to call this procedure.
ringbell tells it to echo a bell to the remote user (if communications
still exist).
Procedure ENDPORT
EndPort should be the last line of your door program. This procedure
disables the BIO Async routines, and restores the previously
installed routines. This procedure should be called before
the program ends, especially during abnormal termination, so that
the BBSs communication routines are re-established. See SetPort.
Function EXIST(thisfile : pathstr) : boolean
Exists tells whether or not ThisFile exists or not. Should be used
in conjunction with Valid. This is a public domain function.
Procedure GETSTRING(var gstr : string)
GetString returns all characters input locally and from remote upto
the next carriage return. This is a 'dumb' procedure, and will not
reject any characters. See ReadKey and ReadPortKey.
Function GETTIMER(var basetime : longint; val : word) : boolean
basetime - clockticks since midnight (18.2 per second)
val - number of seconds
GetTimer returns true if val seconds have passed since basetime.
You must use SetTimer to initialize basetime. These two procedures
can be used for many purposes including benchmarks and user
inactivity timeouts. See SetTimer.
Procedure GOTOPORTXY(x,y : byte) ANSI
GotoPortXY uses ANSI codes to position the cursor. Replaces
TPs CRT GotoXY.
Function INTSTR(val : longint; isize : byte) : string
val - ennumerated value